package gestioneDatabase.Post;

import models.Post;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**
 * Classe di supporto a {@link PostInserter) per il metodo execute utilizzata
 * per facilitarne la comprensione.
 * 
 */
public class PostInserterFiller {
	/**
	 * Il processo di creazione del post. Trasforma un {@link Post} in un
	 * {@link Element} e lo allega al {@link Document}
	 * 
	 * @param post
	 *            post da trasformare
	 * 
	 * @param inputPost
	 *            L'elemento in cui voglio trasferire i dati di post
	 * 
	 * @param doc
	 *            il Document a cui voglio allegare inputPost
	 */
	public void fill(Post post, Element inputPost, Document doc) {

		Attr attr = doc.createAttribute("id");
		attr.setValue(String.valueOf(post.getId()));
		inputPost.setAttributeNode(attr);

		Element author = doc.createElement("author");
		author.appendChild(doc.createTextNode(post.getAuthor().getFullName()));
		inputPost.appendChild(author);

		Element title = doc.createElement("title");
		title.appendChild(doc.createTextNode(post.getTitle()));
		inputPost.appendChild(title);

		Element content = doc.createElement("content");
		content.appendChild(doc.createTextNode(post.getContent()));
		inputPost.appendChild(content);

		Element style = doc.createElement("style");
		style.appendChild(doc.createTextNode(post.getStyle()));
		inputPost.appendChild(style);

		Element nResponse = doc.createElement("ResponseNumber");
		nResponse.appendChild(doc.createTextNode(String.valueOf(0)));
		inputPost.appendChild(nResponse);
	}

}
